/**
 * Copyright (c) 2019 Contributors to the Eclipse Foundation
 *
 * See the NOTICE file(s) distributed with this work for additional
 * information regarding copyright ownership.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License 2.0 which is available at
 * https://www.eclipse.org/legal/epl-2.0
 *
 * SPDX-License-Identifier: EPL-2.0
 */
package org.eclipse.vorto.connector.bt.core;

import java.util.List;
import java.util.Optional;

import org.eclipse.vorto.connector.bt.model.DeviceTelemetryData;
import org.eclipse.vorto.connector.bt.model.EndpointBinding;
import org.eclipse.vorto.connector.bt.model.SourceContext;

public interface Source {

	/**
	 * Reads telemetry data for the given deviceID
	 * @param endpointBinding
	 * @param deviceId
	 * @return
	 */
	Optional<DeviceTelemetryData> readTelemetryData(SourceContext context, EndpointBinding binding, String deviceId) ;
	
	/**
	 * Gets all deviceIds of connected devices
	 * @return
	 */
	List<String> getDevices(SourceContext context);
	
	/**
	 * 
	 * @return
	 */
	String getPlatformKey();

}
